package sketch.labels;

import java.util.ArrayList;

import sketch.labels.nodes.ChildNode;
import sketch.labels.nodes.Node;
import sketch.labels.nodes.RootNode;
import sketch.view.SketchFrame;

public class Tree {
	private ArrayList<Node> nodes;
	
	public Tree(){
		nodes=new ArrayList<Node>();
		init();
	}
	
	public void init(){
		RootNode rNode=new RootNode(null,this);
		for(Object info:SketchFrame.roots){
			ChildNode node= new ChildNode(info.toString(),this,rNode);
			nodes.add(node);
		}
	}
	
	public void clear(){
		nodes=null;
		nodes=new ArrayList<Node>();
		init();
	}
	
	public void addNode(Node node){
		nodes.add(node);
	}
	
	public void removeNode(String info){
		for(int i=0;i<nodes.size();i++){
			Node node=nodes.get(i);
			if(node.getName().equals(info)){nodes.remove(node);}
		}
	}
	
	public Node getNode(String info){
		Node result=null;
		for(Node node:nodes){
			if(node.getName().equals(info)){result=node;}
		}
		return result;
	}
	
	public int size(){
		return nodes.size();
	}
	
	public Node getNode(int index){
		return nodes.get(index);
	}

}
